<?php
namespace Home\Controller;
use Think\Controller;
class TongjiController extends Controller {

    public function index() {
        
        $msg = I("get.idnum");
        $map['msg']=$msg;
        
        $DB = M("wx_qrcode_member_relationship");
        
        $res =  $DB->where($map)->group("openid")->select();
        
        foreach ($res as $key => $value) {
            //找出对应的 openid 的昵称和头像
            $tmp= $this->get_member_info($value['openid']);
            $res[$key]['username']=$tmp['username'];
//            $res[$key]['avatar']=$tmp['avatar'];
        }
//        print_r($res);
//        print_r($DB->getLastSql());
        
        $res_count = count($res);
        
        $this->assign('result', $res);
        $this->assign('res_count', $res_count);
        
        $this->display();
    }
    
    
    private function get_member_info($openid) {
        $map['wxopenid']=$openid;
        
        $DB = M("members");
        $res= $DB->where($map)->find();
        
        return $res;
    }
    
    /*
     * 投票的增量数据
     * 
     */
    public function add_toupiao() {

        if(IS_POST)
        {
            $id= I('post.id');
            $times = I("post.times");
            $DB = M("wx_qrcode_member_relationship");


            for($i=0;$i<$times;$i++)
            {
                //        随机一个2500  内的粉丝
                $DB_members = M("members");
                $random_num = rand(10,2500);

                $map['id']=array("lt",$random_num);
                $member_info = $DB_members->where($map)->limit(1)->find();

                $sql = "INSERT INTO `fd_vote_records` (`vid`, `mid`, `cdate`, `ctime`, `openid`, `type`) VALUES(".$id.", ".$member_info['id'].", '20160111', 1452816366, '".$member_info['wxopenid']."',0)";

                $DB->query($sql);
                M("vote_options")->where("id=".$id)->setInc("vote_count");
    //            echo $openid;
//                echo $DB_members->getLastSql();
    //            echo M("vote_options")->getLastSql();
                echo "增加了 $i 票<br/>";
            }
            $this->display();
        }
        else
        {
            $this->display();
        }
        
    }
    
    
    public function import(){
    	//导入PHPExcel类库，因为PHPExcel没有用命名空间，只能inport导入
		import("Org.Util.PHPExcel");
		//要导入的xls文件，位于根目录下的Public文件夹
		$filename="./Public/123.xls";
		//创建PHPExcel对象，注意，不能少了\
		$PHPExcel=new \PHPExcel();
		//如果excel文件后缀名为.xls，导入这个类
		import("Org.Util.PHPExcel.Reader.Excel5");
		//如果excel文件后缀名为.xlsx，导入这下类
		//import("Org.Util.PHPExcel.Reader.Excel2007");
		//$PHPReader=new \PHPExcel_Reader_Excel2007();

		$PHPReader=new \PHPExcel_Reader_Excel5();
		//载入文件
		$PHPExcel=$PHPReader->load($filename);
		//获取表中的第一个工作表，如果要获取第二个，把0改为1，依次类推
		$currentSheet=$PHPExcel->getSheet(0);
		//获取总列数
		$allColumn=$currentSheet->getHighestColumn();
		//获取总行数
		$allRow=$currentSheet->getHighestRow();
		//循环获取表中的数据，$currentRow表示当前行，从哪行开始读取数据，索引值从0开始
		for($currentRow=2;$currentRow<=$allRow;$currentRow++){
			//从哪列开始，A表示第一列
			for($currentColumn='A';$currentColumn<=$allColumn;$currentColumn++){
				//数据坐标
				$address=$currentColumn.$currentRow;
				//读取到的数据，保存到数组$arr中
				$arr[$currentRow][$currentColumn]=$currentSheet->getCell($address)->getValue();
			}
		}
		$i = 0;
		foreach ($arr as $key => $value) {
			# code..
			
			$data[$i]['barcode'] = $value['A'];
                        $data[$i]['name'] = $value['B'];
                        echo $value['A'].$value['B']."<br/>";
			$i++;
		}
		// print_r($data); die;
		$DB_import_excel = M('tmp_data');
		// var_dump($DB_import_excel); die;
		$res = $DB_import_excel->addAll($data);
		if(!empty($res)){

			echo '导入成功!';
		}else{

			echo '导入失败!';
		}
    }
    
    
    /*
     * 导入苏州的考题
     */
    public function import_suzhou_xws_testing(){
    	//导入PHPExcel类库，因为PHPExcel没有用命名空间，只能inport导入
		import("Org.Util.PHPExcel");
		//要导入的xls文件，位于根目录下的Public文件夹
		$filename="./Public/123.xls";
		//创建PHPExcel对象，注意，不能少了\
		$PHPExcel=new \PHPExcel();
		//如果excel文件后缀名为.xls，导入这个类
		import("Org.Util.PHPExcel.Reader.Excel5");
		//如果excel文件后缀名为.xlsx，导入这下类
		//import("Org.Util.PHPExcel.Reader.Excel2007");
		//$PHPReader=new \PHPExcel_Reader_Excel2007();

		$PHPReader=new \PHPExcel_Reader_Excel5();
		//载入文件
		$PHPExcel=$PHPReader->load($filename);
		//获取表中的第一个工作表，如果要获取第二个，把0改为1，依次类推
		$currentSheet=$PHPExcel->getSheet(0);
		//获取总列数
		$allColumn=$currentSheet->getHighestColumn();
		//获取总行数
		$allRow=$currentSheet->getHighestRow();
		//循环获取表中的数据，$currentRow表示当前行，从哪行开始读取数据，索引值从0开始
		for($currentRow=2;$currentRow<=$allRow;$currentRow++){
			//从哪列开始，A表示第一列
			for($currentColumn='A';$currentColumn<=$allColumn;$currentColumn++){
				//数据坐标
				$address=$currentColumn.$currentRow;
				//读取到的数据，保存到数组$arr中
				$arr[$currentRow][$currentColumn]=$currentSheet->getCell($address)->getValue();
			}
		}
		$i = 0;
		foreach ($arr as $key => $value) {
			# code..
			
			$data[$i]['title'] = $value['A'];
                        $data[$i]['optionA'] = $value['B'];
                        $data[$i]['optionB'] = $value['C'];
                        $data[$i]['optionC'] = $value['D'];
                        $data[$i]['optionD'] = $value['E'];
                        $data[$i]['right_option'] = $value['F'];
                        $data[$i]['ctime'] = I("server.REQUEST_TIME");
                        
			$i++;
		}
		// print_r($data); die;
		$DB_import_excel = M('acsuzhou_item_pool');
		// var_dump($DB_import_excel); die;
		$res = $DB_import_excel->addAll($data);
		if(!empty($res)){

			echo '导入成功!';
		}else{

			echo '导入失败!';
		}
    }
    
    
    /*
     * 
     * 苏州的学校导入功能
     * 
     * 
     */
    public function import_schools() {
        
    }
    
    
    /*
     * 
     * 
     * 导入后的学校的qr_code 生成功能
     * 
     * 
     */
    public function qrcode_create_for_schools() {
        
    }

    public function out(){
    	$DB = M('product');
    	$data = $DB->query('select classify_name from fd_product where id>4000 group by classify_name');
    	// echo $DB->getLastSql(); die;
  		// print_r($data); die;
    	//导入PHPExcel类库，因为PHPExcel没有用命名空间，只能inport导入
		import("Org.Util.PHPExcel");
		import("Org.Util.PHPExcel.Writer.Excel5");
		import("Org.Util.PHPExcel.IOFactory.php");

		$filename="test_excel";
		$headArr=array("分类名");
		$this->getExcel($filename,$headArr,$data);
	}

	private	function getExcel($fileName,$headArr,$data){
			//对数据进行检验
		    if(empty($data) || !is_array($data)){
		        die("data must be a array");
		    }
		    //检查文件名
		    if(empty($fileName)){
		        exit;
		    }

		    $date = date("Y_m_d",time());
		    $fileName .= "_{$date}.xls";

			//创建PHPExcel对象，注意，不能少了\
		    $objPHPExcel = new \PHPExcel();
		    $objProps = $objPHPExcel->getProperties();
			
		    //设置表头
		    $key = ord("A");
		    foreach($headArr as $v){
		        $colum = chr($key);
		        $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);
		        $key += 1;
		    }
		    
		    $column = 2;
		    $objActSheet = $objPHPExcel->getActiveSheet();
		    foreach($data as $key => $rows){ //行写入
		        $span = ord("A");
		        foreach($rows as $keyName=>$value){// 列写入
		            $j = chr($span);
		            $objActSheet->setCellValue($j.$column, $value);
		            $span++;
		        }
		        $column++;
	    }

		    $fileName = iconv("utf-8", "gb2312", $fileName);
		    //重命名表
		   	// $objPHPExcel->getActiveSheet()->setTitle('test');
		    //设置活动单指数到第一个表,所以Excel打开这是第一个表
		    $objPHPExcel->setActiveSheetIndex(0);
		    header('Content-Type: application/vnd.ms-excel');
			header("Content-Disposition: attachment;filename=\"$fileName\"");
			header('Cache-Control: max-age=0');

		  	$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
		    $objWriter->save('php://output'); //文件通过浏览器下载
		    exit;
		}
                
    /*
     * 过滤重复的条码
     * 
     */
    public function barcode_filter() {
       $DB_import_excel = M('tmp_data2');
       $res = $DB_import_excel->select();
       
       foreach ($res as $key => $value) {
           if($this->_chk_barcode_exist($value['barcode']))
           {
               $dataList[]=array('barcode'=>$value['barcode'],'name'=>$value['name'],'ctime'=>I("server.REQUEST_TIME"));
//               $dataList[]['name'] = $value['name'];
           }
       }
       
       $DB_import_excel2 = M('product');
//       $DB_import_excel2 = M('tmp_data2');
       $res = $DB_import_excel2->addAll($dataList);
       
    }
    
    /*
     * 检查barcode是否已经存在
     */
    private function _chk_barcode_exist($barcode) {
        $map['barcode']=$barcode;
        
        $DB = M("product");
        
        $res = $DB->where($map)->find();
        
        
        if(empty($res))
        {
            return TRUE;
        }
        else
        {
            return FALSE;
        }
    }
    
    /*
     * 导入华润超市的数据
     */
    public function import_huarun_supermarket_data(){
    	//导入PHPExcel类库，因为PHPExcel没有用命名空间，只能inport导入
		import("Org.Util.PHPExcel");
		//要导入的xls文件，位于根目录下的Public文件夹
		$filename="./Public/huarun.xls";
		//创建PHPExcel对象，注意，不能少了\
		$PHPExcel=new \PHPExcel();
		//如果excel文件后缀名为.xls，导入这个类
		import("Org.Util.PHPExcel.Reader.Excel5");
		//如果excel文件后缀名为.xlsx，导入这下类
		//import("Org.Util.PHPExcel.Reader.Excel2007");
		//$PHPReader=new \PHPExcel_Reader_Excel2007();

		$PHPReader=new \PHPExcel_Reader_Excel5();
		//载入文件
		$PHPExcel=$PHPReader->load($filename);
		//获取表中的第一个工作表，如果要获取第二个，把0改为1，依次类推
		$currentSheet=$PHPExcel->getSheet(0);
		//获取总列数
		$allColumn=$currentSheet->getHighestColumn();
		//获取总行数
		$allRow=$currentSheet->getHighestRow();
		//循环获取表中的数据，$currentRow表示当前行，从哪行开始读取数据，索引值从0开始
		for($currentRow=2;$currentRow<=$allRow;$currentRow++){
			//从哪列开始，A表示第一列
			for($currentColumn='A';$currentColumn<=$allColumn;$currentColumn++){
				//数据坐标
				$address=$currentColumn.$currentRow;
				//读取到的数据，保存到数组$arr中
				$arr[$currentRow][$currentColumn]=$currentSheet->getCell($address)->getValue();
			}
		}
		$i = 0;
		foreach ($arr as $key => $value) {
			# code..
			
			$data[$i]['barcode'] = $value['A'];
                        $data[$i]['name'] = $value['B'];
                        
			$i++;
		}
		// print_r($data); die;
		$DB_import_excel = M('test_product_to_import');
		// var_dump($DB_import_excel); die;
		$res = $DB_import_excel->addAll($data);
		if(!empty($res)){

			echo '导入成功!';
		}else{

			echo '导入失败!';
		}
    }

    
    /*
     * 查找超市是否匹配的数据
     */
    public function find_market_match_data() {
        $DB =  M("test_product_to_import");
        $res = $DB->select();
        
        foreach ($res as $key => $value) {
            //判断是否已经存在
            $tmp = $this->_chk_barcode_exist($value['barcode']);
            if(!$tmp)
            {
//                存在
                $DB->id = $value['id'];
                $DB->is_exist = 1;
                $DB->save();
            }
            else
            {
                
            }
        }
    }
    
    /*
     * 查找超市是否匹配的数据,将不匹配的数据导入
     * 
     */
    public function find_market_match_data_import() {
        $DB =  M("test_product_to_import");
        $map['is_exist']=0;
        
        $res = $DB->where($map)->select();
//        echo $DB->getLastSql();
//        echo "dd";
//        print_r($res);
        $User = D("product");
        foreach ($res as $key => $value) {
           $User->create(); 
           $User->name = $value['name'];
           $User->barcode = $value['barcode'];
           $User->add();
//           
           echo $value['barcode']."<br/>";
        }
    }
    
   
}
?>
